package com.qfedu.mtl.dao;

import com.qfedu.mtl.entity.Managers;
import com.qfedu.mtl.entity.Menus;
import com.qfedu.mtl.query.managerQuery;

import java.util.List;

/**
 * @version v1.0
 * @Date 2023/9/25 14:54
 * @Author DARKER
 * @Email 1402216045@qq.com
 */
public interface ManagerDao {
    /**
     * 根据用户名查找
     * @param username
     * @return
     */
    Managers selectByUsername(String username);

    /**
     * 插入
     * @param dto
     * @return
     */
    int insert(Managers dto);

    /**
     * 检查添加信息是否重复
     * @param dto
     * @return
     */
    int checkInfoRepeat(Managers dto);

    /**
     * 分页
     * @param page
     * @param size
     * @param query
     * @return
     */
    List<Managers> pageByQuery(Integer page, Integer size, managerQuery query);
    Integer selectCountQuery(managerQuery query);

    /**
     * 查询菜单
     * @param mgrId
     * @return
     */
    List<Menus> selectManagerAllMenus(Integer mgrId);

    /**
     * 修改
     * @param managers
     * @return
     */
    int update(Managers managers);

    /**
     * 根据Id删除
     * @param id
     * @return
     */
    int deleteById(Integer id);

    /**
     * 根据id，批量删除
     * @param ids
     */
    void deleteBatch(List<Integer> ids);

    /**
     * 根据id，修改为roleName角色
     * @param mgrId
     * @param roleName
     */
    void updateManagerRoleByManagerId(Integer mgrId, String roleName);

    /**
     * 通过id查询是否存在role角色
     * @param mgrId
     * @return
     */
    boolean selectExistMgrIdInTbRoles(Integer mgrId);

    /**
     * 通过id，插入指定角色
     * @param mgrId
     * @param roleName
     */
    void insertMgrBymgrId(Integer mgrId, String roleName);
}
